package com.qijian.maindata.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qijian.common.annotation.JoinField;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qijian.common.annotation.Excel;
import com.qijian.common.core.domain.BaseEntity;
import lombok.experimental.Accessors;

/**
 * 生产领料单详情对象 main_item_get_detail
 *
 * @author qijian
 * @date 2021-10-19
 */
@EqualsAndHashCode(callSuper = true)
@Data
@ToString
@Accessors(chain = true)
@TableName("main_item_get_detail")
public class ItemGetDetail extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 唯一id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "唯一id")
    private Long id;

    /**
     * 领料单id
     */
    @Excel(name = "领料单id")
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "领料单id")
    @JoinField
    private Long getId;

    @ApiModelProperty(value = "来源类型")
    private String sourceType;

    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "来源id")
    private Long sourceId;

    @JsonSerialize(using= ToStringSerializer.class)
    @ApiModelProperty(value = "来源详情id")
    private Long sourceDetailId;

    @ApiModelProperty(value = "来源单据名称")
    private String sourceName;

    @ApiModelProperty(value = "领料人")
    private String pickerName;

    @ApiModelProperty(value = "领料人")
    @JsonSerialize(using= ToStringSerializer.class)
    private Long pickerId;

    /**
     * 产品id
     */
    @Excel(name = "产品id")
    @JsonSerialize(using = ToStringSerializer.class)
    @ApiModelProperty(value = "产品id")
    private Long productId;

    /**
     * 产品名称
     */
    @Excel(name = "产品名称")
    @ApiModelProperty(value = "产品名称")
    private String productName;

    /**
     * 产品编号
     */
    @Excel(name = "产品编号")
    @ApiModelProperty(value = "产品编号")
    private String productNumber;

    /**
     * 产品规格
     */
    @Excel(name = "产品规格")
    @ApiModelProperty(value = "产品规格")
    private String productSpecification;

    /**
     * 产品单位
     */
    @Excel(name = "产品单位")
    @ApiModelProperty(value = "产品单位")
    private String productUnit;

    /**
     * 领料数量
     */
    @Excel(name = "申请数量")
    @ApiModelProperty(value = "申请数量")
    private BigDecimal count;

    @Excel(name = "实发数量")
    @ApiModelProperty(value = "实发数量")
    private BigDecimal actualCount;

    @Excel(name = "现有库存")
    @ApiModelProperty(value = "现有库存")
    private String inventory;

    /**
     * 交货日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "交货日期", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "交货日期")
    private Date deliveryDate;

    /**
     * 领料方式
     */
    @Excel(name = "领料方式")
    @ApiModelProperty(value = "领料方式")
    private Integer getWay;

    /**
     * 备注
     */
    @Excel(name = "备注")
    @ApiModelProperty(value = "备注")
    private String remark;

    @ApiModelProperty(value = "仓库id")
    private Long stockId;

    @ApiModelProperty(value = "仓库名称")
    private String stockName;

    @ApiModelProperty(value = "仓位")
    private Long stockLocationId;

    @ApiModelProperty(value = "项目fid")
    private Long projectFid;
    @ApiModelProperty(value = "批号")
    private String flot;
    @ApiModelProperty(value = "成本价")
    private BigDecimal price;
    @ApiModelProperty(value = "总成本")
    private BigDecimal amount;
}
